package main

import "fmt"

//skip 常见的跳过已经关闭的通道的处理，将其设置为nil
//这样在读取的时候就永远阻塞，从而跳过该分支，避免持续检查
func skip() {
	ch1 := make(chan int)
	ch2 := make(chan int)
	done := make(chan struct{})

	for {
		select {
		case v, ok := <-ch1:
			if !ok {
				ch1 = nil
				continue
			}
			fmt.Println(v)
		case v, ok := <-ch2:
			if !ok {
				ch2 = nil
				continue
			}
			fmt.Println(v)
		case <-done:
			return
		}
	}
}
